//------------------------------------------------------------------------------
// <copyright file="RpcBuiltInHooks.h" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//------------------------------------------------------------------------------

#pragma once

#ifdef ENABLE_GAMESTEST_RPC

namespace Microsoft { namespace Internal { namespace GamesTest { namespace Rpc { namespace Server
{
	RpcHookCode SetMaximumQueueSize(RpcArchiveImpl& input, RpcArchiveImpl& output, RpcServerImpl* server);
	RpcHookCode UpdateEventSubscription(RpcArchiveImpl& input, RpcArchiveImpl& output, std::weak_ptr<IRpcChannel> channel, RpcServerImpl* server);
	RpcHookCode VerifyPropertiesAndSubscribeOnConnect(RpcArchiveImpl& input, RpcArchiveImpl& output, std::weak_ptr<IRpcChannel> client, RpcServerImpl* server);

	RpcHookCode EnumRegisteredHooks(RpcArchiveImpl& input, RpcArchiveImpl& output, std::weak_ptr<IRpcChannel> client, RpcServerImpl* server);

	RpcHookCode UpdateSingleEvent(std::weak_ptr<IRpcChannel> client, RpcServerImpl* server, const std::wstring& eventName, bool subscribe);

}}}}}

#endif // ENABLE_GAMESTEST_RPC